1. Field of the Invention
The present invention relates generally to the field of graphics software and, more specifically, to a system and method for masking transitions between graphics processing units in a hybrid graphics system.
2. Description of the Related Art
A modern computer system may include a graphics processing unit (GPU) that performs graphics processing operations in conjunction with a central processing unit (CPU) also included in the computer system. For example, the GPU may augment the processing capabilities of the CPU in order to generate digital images that can be output to a display screen associated with the computer system. Some computer systems include two or more GPUs that operate in concert to perform graphics processing operations. A computer system that includes two or more GPUs is often referred to as a “hybrid graphics system.”
One example of hybrid graphics system includes an integrated GPU (iGPU) that is integrated into a motherboard included in the hybrid graphics system. The iGPU is configured to perform basic graphics processing operations. In addition to the iGPU, the hybrid graphics system also includes a discrete GPU (dGPU) located on an add-in card coupled to the hybrid graphics system. The dGPU is configured to perform high-performance graphics processing operations and typically consumes more power than the iGPU.
When high-performance graphics processing operations are not being performed by the dGPU, the hybrid driver causes the hybrid graphics system to operate in a “nominal mode” and graphics processing operations are performed on the iGPU. When high-performance graphics processing operations are being performed by the dGPU, a hybrid driver causes the hybrid graphics system to operate in a “high-performance mode,” where graphics processing operations are performed on the dGPU. While operating in the nominal mode, the hybrid driver causes the dGPU to be powered off, thereby conserving power.
The hybrid driver may cause the hybrid graphics system to transition from the high-performance mode to the nominal mode or, alternatively, from the nominal mode to the high-performance mode. When the hybrid driver causes the hybrid graphics system to transition from the nominal mode to the high-performance mode, the hybrid driver powers up the dGPU, causes the dGPU to be re-enumerated, reloads a driver associated with the dGPU, and re-initializes the driver, among other things. High-performance graphics processing operations may then be performed on the dGPU.
However, this approach transitioning between graphics processing modes suffers from certain drawbacks. First, the process of transitioning from the nominal mode to the high-performance mode may take up to fifteen seconds or longer to complete, thus forcing a user of the hybrid graphics system to wait during the transition period from the nominal mode to the high-performance mode. During this transition period, the hybrid driver powers up the dGPU, enumerates the dGPU to one or more software applications, reloads a driver into the dGPU, and reinitializes the driver. Each of these various steps prolongs the transition period from the nominal mode to the high-performance mode. Second, during this transition period, the dGPU cannot generate images for display, and so a display screen associated with the hybrid graphics system may display a blank screen, thereby disrupting the visual experience of the user of the hybrid graphics system.
Accordingly, what is needed in the art is a more effective way to transition between operating states in a hybrid graphics system.